<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>AngelScript: asIJITCompiler Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>


</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">AngelScript
   
   </div>
   
  </td>
  
  
  
   
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classas_i_j_i_t_compiler.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">asIJITCompiler Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="asIJITCompiler" -->
<p>The interface that AS use to interact with the JIT compiler.  
 <a href="classas_i_j_i_t_compiler.html#details">More...</a></p>

<p><a href="classas_i_j_i_t_compiler-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_j_i_t_compiler.html#aa6270727e61d8708d651a0f5faada695">CompileFunction</a> (<a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *function, <a class="el" href="angelscript_8h.html#ad98ca65b7b5e09d50bcc73a5f184c719">asJITFunction</a> *output)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by AngelScript to begin the compilation.  <a href="#aa6270727e61d8708d651a0f5faada695"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classas_i_j_i_t_compiler.html#afbf9390868269c9224df85d49aabd451">ReleaseJITFunction</a> (<a class="el" href="angelscript_8h.html#ad98ca65b7b5e09d50bcc73a5f184c719">asJITFunction</a> func)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by AngelScript when the JIT function is released.  <a href="#afbf9390868269c9224df85d49aabd451"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This is the minimal interface that the JIT compiler must implement so that AngelScript can request the compilation of the script functions.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="doc_adv_jit.html">How to build a JIT compiler</a> </dd></dl>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aa6270727e61d8708d651a0f5faada695"></a><!-- doxytag: member="asIJITCompiler::CompileFunction" ref="aa6270727e61d8708d651a0f5faada695" args="(asIScriptFunction *function, asJITFunction *output)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int asIJITCompiler::CompileFunction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classas_i_script_function.html">asIScriptFunction</a> *&#160;</td>
          <td class="paramname"><em>function</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ad98ca65b7b5e09d50bcc73a5f184c719">asJITFunction</a> *&#160;</td>
          <td class="paramname"><em>output</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">function</td><td>A pointer to the script function </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">output</td><td>The JIT compiled function </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A negative value on error.</dd></dl>
<p>AngelScript will call this function to request the compilation of a script function. The JIT compiler should produce the native machine code representation of the function and update the JitEntry instructions in the byte code to allow the VM to transfer the control to the JIT compiled function. </p>

</div>
</div>
<a class="anchor" id="afbf9390868269c9224df85d49aabd451"></a><!-- doxytag: member="asIJITCompiler::ReleaseJITFunction" ref="afbf9390868269c9224df85d49aabd451" args="(asJITFunction func)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void asIJITCompiler::ReleaseJITFunction </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="angelscript_8h.html#ad98ca65b7b5e09d50bcc73a5f184c719">asJITFunction</a>&#160;</td>
          <td class="paramname"><em>func</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">func</td><td>Pointer to the JIT function </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="angelscript_8h.html">angelscript.h</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="classas_i_j_i_t_compiler.html">asIJITCompiler</a>      </li>

    <li class="footer">Generated on Sun Jan 29 2012 15:41:04 for AngelScript by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.5.1 </li>
   </ul>
 </div>


</body>
</html>
